home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2009 February
/
PCWFEB09.iso
/
Software
/
Linux
/
Kubuntu 8.10
/
kubuntu-8.10-desktop-i386.iso
/
casper
/
filesystem.squashfs
/
etc
/
init.d
/
sysklogd
< prev
next >
Wrap
Text File
|
2008-08-29
|
3KB
|
157 lines
#! /bin/sh
# /etc/init.d/sysklogd: start the system log daemon.
### BEGIN INIT INFO
# Provides: sysklogd
# Required-Start: $local_fs $time
# Required-Stop: $local_fs $time
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 1
# Short-Description: System logger
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin
pidfile=/var/run/syslogd.pid
binpath=/sbin/syslogd
test -x $binpath || exit 0
# syslogd options should be set in /etc/default/syslogd
SYSLOGD=""
# user to run syslogd as - this can overriden in /etc/default/syslogd
USER="syslog"
test ! -r /etc/default/syslogd || . /etc/default/syslogd
# allow ltsp to override
test ! -r /etc/ltsp/syslogd || . /etc/ltsp/syslogd
# Figure out under which user syslogd should be running as
if echo ${SYSLOGD} | grep -q '^.*-u[[:space:]]*\([[:alnum:]]*\)[[:space:]]*.*$'
then
# A specific user has been set on the command line, try to extract it.
USER=$(echo ${SYSLOGD} | sed -e 's/^.*-u[[:space:]]*\([[:alnum:]]*\)[[:space:]]*.*$/\1/')
else
# By default, run syslogd under the syslog user
SYSLOGD="${SYSLOGD} -u ${USER}"
fi
# Unable to get the user under which syslogd should be running, stop.
if [ -z "${USER}" ]
then
log_failure_msg "Unable to get syslog user"
exit 1
fi
. /lib/lsb/init-functions
create_xconsole()
{
# Only proceed if /dev/xconsole is used at all
if ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf
then
return
fi
if [ ! -e /dev/xconsole ]; then
mknod -m 640 /dev/xconsole p
else
chmod 0640 /dev/xconsole
fi
chown ${USER}:adm /dev/xconsole
test ! -x /sbin/restorecon || /sbin/restorecon /dev/xconsole
}
fix_log_ownership()
{
for l in `syslogd-listfiles -a`
do
chown ${USER}:adm $l
done
}
running()
{
# No pidfile, probably no daemon present
#
if [ ! -f $pidfile ]
then
return 1
fi
pid=`cat $pidfile`
# No pid, probably no daemon present
#
if [ -z "$pid" ]
then
return 1
fi
if [ ! -d /proc/$pid ]
then
return 1
fi
cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
# No syslogd?
#
if [ "$cmd" != "$binpath" ]
then
return 1
fi
return 0
}
case "$1" in
start)
log_begin_msg "Starting system log daemon..."
create_xconsole
fix_log_ownership
start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
log_end_msg $?
;;
stop)
log_begin_msg "Stopping system log daemon..."
start-stop-daemon --stop --quiet --pidfile $pidfile --name syslogd
log_end_msg $?
;;
reload|force-reload)
log_begin_msg "Reloading system log daemon..."
fix_log_ownership
start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile --name syslogd
log_end_msg $?
;;
restart)
log_begin_msg "Restarting system log daemon..."
start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile --name syslogd
fix_log_ownership
start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
log_end_msg $?
;;
reload-or-restart)
if running
then
$0 reload
else
$0 start
fi
;;
status)
status_of_proc -p $pidfile $binpath syslogd && exit 0 || exit $?
;;
*)
log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart|status}"
exit 1
esac
exit 0